package controlflow

import "fmt"

// DemoControlFlow 展示Go的控制流语句
func DemoControlFlow() {
	// if语句
	age := 20
	if age >= 18 {
		fmt.Println("成年人")
	} else {
		fmt.Println("未成年人")
	}
	
	// if语句的简短声明
	if score := 85; score >= 90 {
		fmt.Println("优秀")
	} else if score >= 80 {
		fmt.Println("良好")
	} else {
		fmt.Println("一般")
	}
	
	// for循环
	fmt.Print("for循环计数: ")
	for i := 0; i < 5; i++ {
		fmt.Printf("%d ", i)
	}
	fmt.Println()
	
	// for作为while使用
	fmt.Print("while风格循环: ")
	count := 0
	for count < 3 {
		fmt.Printf("%d ", count)
		count++
	}
	fmt.Println()
	
	// 无限循环与break
	fmt.Print("无限循环与break: ")
	counter := 0
	for {
		fmt.Printf("%d ", counter)
		counter++
		if counter >= 3 {
			break
		}
	}
	fmt.Println()
	
	// 循环遍历切片
	fruits := []string{"苹果", "香蕉", "橙子"}
	fmt.Print("遍历切片: ")
	for index, fruit := range fruits {
		fmt.Printf("[%d:%s] ", index, fruit)
	}
	fmt.Println()
	
	// switch语句
	day := 3
	switch day {
	case 1:
		fmt.Println("星期一")
	case 2:
		fmt.Println("星期二")
	case 3:
		fmt.Println("星期三")
	default:
		fmt.Println("其他日子")
	}
	
	// switch不带表达式
	score := 75
	switch {
	case score >= 90:
		fmt.Println("成绩: A")
	case score >= 80:
		fmt.Println("成绩: B")
	case score >= 70:
		fmt.Println("成绩: C")
	default:
		fmt.Println("成绩: D")
	}
	
	// goto语句
	fmt.Print("使用goto: ")
	i := 0
loop:
	fmt.Printf("%d ", i)
	i++
	if i < 3 {
		goto loop
	}
	fmt.Println()
}
